package com.quad.innovators.salesease.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.quad.innovators.salesease.model.bo.RoleDataPermsBO;
import com.quad.innovators.salesease.model.bo.RolePermsBO;
import com.quad.innovators.salesease.model.entity.SysRoleMenu;

import java.util.List;
import java.util.Set;

/**
 * 角色菜单访问层
 *
 */
public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {

    /**
     * 获取角色拥有的菜单ID集合
     *
     * @param roleCode 角色ID
     * @return 菜单ID集合
     */
    List<String> listMenuIdsByRoleId(String roleCode);

    /**
     * 获取权限和拥有权限的角色列表
     *
     * @param roleCode 角色编码
     * @return 权限列表
     */
    List<RolePermsBO> getRolePermsList(String roleCode);


    /**
     * 获取用户数据权限
     * @param roleCode 角色
     * @return 权限
     */
    List<RoleDataPermsBO> getRoleDataPermsList(List<String> roleCode);


    /**
     * 获取角色权限集合
     *
     * @param roles 角色集合
     * @return 权限集合
     */
    Set<String> listRolePerms(Set<String> roles);
}
